<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>第四章：Chains模块 - 4.1 什么是Chain？</title>
    <link rel="stylesheet" href="../shared_styles.css">
</head>
<body>
    <div class="container">
        <h2>4.1 什么是Chain？</h2>
        <p>在Langchain中，Chain（链）是一个非常核心的概念。它允许我们将多个组件（如LLM、PromptTemplate、其他Chain等）组合起来，形成一个连贯的调用序列，以完成更复杂的任务。</p>
        <p>想象一下，一个任务可能需要多个步骤：首先，根据用户输入格式化一个提示；然后，将这个提示发送给LLM获取回应；接着，可能需要解析LLM的输出；甚至可能需要将这个输出作为另一个LLM调用的输入。</p>
        <p>Chain就是用来组织和执行这些步骤的。它的核心思想是“输入/输出”的传递：一个组件的输出可以作为下一个组件的输入。</p>
        <p>使用Chain的好处：</p>
        <ul>
            <li><strong>模块化：</strong> 将复杂的逻辑分解为可管理的小块。</li>
            <li><strong>可重用性：</strong> 单个Chain或Chain的组合可以在不同的应用场景中复用。</li>
            <li><strong>标准化接口：</strong> Chain提供了一个统一的接口（通常是<code>invoke()</code>或<code>__call__()</code>方法），简化了调用方式。</li>
            <li><strong>易于构建复杂应用：</strong> 通过链接不同的Chain，可以构建出功能强大的应用程序，如问答系统、摘要生成器、代码生成器等。</li>
        </ul>
        <p>Langchain提供了多种预置的Chain类型，同时也支持用户自定义Chain。在较新版本中，推荐使用LangChain表达式语言（LCEL）来组合这些组件，它提供了更灵活和声明式的方式。</p>
        <div class="navigation">
            <a href="../langchain_tutorial_outline.html">返回目录</a>
            <a href="../chapter4/4-2_llmchain_basic_chain.html">下一小节：LLMChain：最基础的Chain</a>
        </div>
    </div>
</body>
</html>
